# -*- coding:utf-8 -*-
# Author : leiyh
# Data ：2019/7/9 21:34
import os,sys
import shutil
import stat


def get_root_path():
    """获取当前项目路径

    :return: 返回绝对路径地址
    """
    #root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")).replace('\\', '/')
    #root_path = os.path.join(os.path.split(os.path.realpath(__file__))[0],"../..")
    root_path = os.path.split(os.path.realpath(__file__))[0] + "/../.."
    return root_path + '/'


def deldir(dir):
    """删除指定目录的路径文件

    :param dir:

    :return: 删除成功返回true
    """
    if os.path.exists(dir):
        for file in os.listdir(dir):
            file = os.path.join(dir, file)
            if os.path.isdir(file):
                print("remove dir", file)
                os.chmod(file, stat.S_IWRITE | stat.S_IWOTH)
                deldir(file)
            elif os.path.isfile(file):
                print("remove file", file)
                os.chmod(file, stat.S_IWRITE | stat.S_IWOTH)
                os.remove(file)
        shutil.rmtree(dir, True)


def mkdir(path):
    """创建目录

    :param path: 指定路径地址

    :return:
    """
    is_exists = os.path.exists(path)
    if not is_exists:
        os.makedirs(path)


def remove(path):
    """删除文件

    :param path: 文件路径地址

    :return:
    """
    is_exists = os.path.exists(path)
    if is_exists:
        os.remove(path)


def exists(file_or_path):
    """判断目标文件或者目录是否存在

    :param file_or_path: 文件或者目录

    :return: 存在返回true 不存在返回false
    """
    is_exists = os.path.exists(file_or_path)
    return is_exists


def move_file(src_dir, target_dir):
    """移动文件

    :param src_dir: 源文件路径
    :param target_dir: 目标路径

    :return:
    """
    if not os.path.exists(target_dir):
        shutil.move(src_dir, target_dir)


def copy_dir(src_dir, target_dir):
    """复制文件

    :param src_dir: 源文件路径
    :param target_dir: 目标路径

    :return:
    """
    if not os.path.exists(target_dir):
        shutil.copytree(src_dir, target_dir)


def copy_file(src_file, target_dir):
    """复制文件

    :param src_file: 源文件路径
    :param target_dir: 目标路径

    :return:
    """
    shutil.copy(src_file, target_dir)


if __name__ == '__main__':
    # print(get_root_path())  # 获取当前项目路径
    # print('D:\\software-data\\pycharm\\automation_framework\\test.py')  # 删除指定目录的路径文件
    # print(exists(get_root_path() + 'test.py'))  # 判断路径是否存在
    # print(move_file(get_root_path() + 'test.py',get_root_path() + 'test_case/test.py'))  #
    # print(copy_dir(get_root_path()+'test_case',get_root_path()+'test_case1'))     # 复制整个文件目录里面所有的文件内容 并重新指定目标目录地址
    # print(copy_file(get_root_path()+'copy_test.py',get_root_path()+'testcase.py'))  # 复制单个文件和内容 并重新指定目标路径地址
    pass
